#include "pthread.h"
#include "stdio.h"
#include "unistd.h"

// 线程函数
void *thread_func(void *args)
{
    printf("分线程开始执行... \n");

    // 线程内部主动退出
    // pthread_exit(NULL);

    sleep(5);

    printf("分线程开始执行... \n");

    return NULL;
}

int main(int argc, char const *argv[])
{
    printf("主线程开始执行... \n");

    pthread_t pt;
    pthread_create(&pt, NULL, thread_func, NULL);

    // 主线程中退出分线程
    sleep(3);
    pthread_cancel(pt);

    // 等待分线程执行完成
    pthread_join(pt, NULL);

    printf("主线程结束执行... \n");
    return 0;
}
